package tetromino;

import aima.search.framework.HeuristicFunction;

public class TetrominoHeuristicFunction implements HeuristicFunction{

	@Override
	public double getHeuristicValue(Object state) {
		TetrominoEstado estado = (TetrominoEstado) state;		
		
		int h = 100;
		
		for (int i=0; i < TetrominoEstado.NUMERO_TETROMINOS; i++)
			switch(i){
			case TetrominoEstado.CUADRADO: 
				h -= estado.getNumTetrominos(i) * 2;
				break;
			case TetrominoEstado.PALO:
				h -= estado.getNumTetrominos(i) * 3;
				break;
			case TetrominoEstado.ELE:
				h -= estado.getNumTetrominos(i) * 1;
				break;
			case TetrominoEstado.ELE_REVERSE:
				h -= estado.getNumTetrominos(i) * 1;
				break;
			case TetrominoEstado.TE:
				h -= estado.getNumTetrominos(i) * 1;
				break;
			case TetrominoEstado.ZETA:
				h -= estado.getNumTetrominos(i) * 1;
				break;
			case TetrominoEstado.ZETA_REVERSE:
				h -= estado.getNumTetrominos(i) * 1;
				break;
			}
		
		return h;
	}

}
